﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Data;
using DevExpress.Utils;
using DevExpress.XtraEditors;
using DevExpress.XtraEditors.Controls;
using DevExpress.XtraGrid.Views.Grid;
using QuanLyKho.DKChung;

namespace QuanLyKho.QuanLyKho
{
    public partial class Kho_Themxuatkho : Form
    {
        public static string ID_XuatKho = "0";
        private static string curID_VatTu = "0";
        private static string curID_XKCT = "0";

        public Kho_Themxuatkho()
        {
            InitializeComponent();
            SetForm();
            if (ID_XuatKho != "0")
                LoadFormUpdate();
            else
                LoadFormInsert();
        }

        private void SetForm()
        {
            gvChiTiet.OptionsView.ShowGroupPanel = false;
            gvChiTiet.OptionsView.NewItemRowPosition = NewItemRowPosition.None;
            gvChiTiet.OptionsView.ShowFooter = true;
            for (int i = 0; i < 7; i++)
            {
                gvChiTiet.Columns[i].OptionsColumn.AllowSort = DefaultBoolean.False;
            }

            luMaDangAnh.Properties.DataSource = DataAll.SelectAll("Kho_VatTu", "MaVatTu", "");
            luMaDangAnh.Properties.Columns.Add(new LookUpColumnInfo("MaVatTu"));
            luMaDangAnh.Properties.DisplayMember = "MaVatTu";
            luMaDangAnh.Properties.ValueMember = "MaVatTu";
            luMaDangAnh.Properties.NullText = "--- Chọn mã ảnh ---";
            luMaDangAnh.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
            luMaDangAnh.Properties.ShowHeader = false;

            luPhongBan.Properties.DataSource = DataAll.SelectAll("Kho_KhoHang", "IDKhoHang,MaKho,TenKho", "");
            luPhongBan.Properties.Columns.Add(new LookUpColumnInfo("IDKhoHang"));
            luPhongBan.Properties.Columns.Add(new LookUpColumnInfo("MaKho"));
            luPhongBan.Properties.Columns.Add(new LookUpColumnInfo("TenKho"));
            luPhongBan.Properties.DisplayMember = "TenKho";
            luPhongBan.Properties.ValueMember = "IDKhoHang";
            luPhongBan.Properties.NullText = "--- Chọn kho nhận ---";
            luPhongBan.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
            luPhongBan.Properties.Columns["IDKhoHang"].Visible = false;
            luPhongBan.Properties.ShowHeader = false;

            luNguoiNhan.Properties.DataSource = DataAll.SelectAll("DkChung_NhanVien", "MaNhanVien,TenNhanVien", "");
            luNguoiNhan.Properties.Columns.Add(new LookUpColumnInfo("MaNhanVien"));
            luNguoiNhan.Properties.Columns.Add(new LookUpColumnInfo("TenNhanVien"));
            luNguoiNhan.Properties.DisplayMember = "TenNhanVien";
            luNguoiNhan.Properties.ValueMember = "MaNhanVien";
            luNguoiNhan.Properties.NullText = "--- Chọn người nhận ---";
            luNguoiNhan.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
            luNguoiNhan.Properties.ShowHeader = false;

            luMaVatTu.Properties.DataSource = DataAll.SelectAll("Kho_VatTu", "IDVatTu,MaVatTu,TenVatTu,DonVi,KhoVai,DonGia", "");
            luMaVatTu.Properties.Columns.Add(new LookUpColumnInfo("MaVatTu"));
            luMaVatTu.Properties.Columns.Add(new LookUpColumnInfo("IDVatTu"));
            luMaVatTu.Properties.Columns.Add(new LookUpColumnInfo("TenVatTu"));
            luMaVatTu.Properties.Columns.Add(new LookUpColumnInfo("DonVi"));
            luMaVatTu.Properties.Columns.Add(new LookUpColumnInfo("KhoVai"));
            luMaVatTu.Properties.Columns.Add(new LookUpColumnInfo("DonGia"));
            luMaVatTu.Properties.DisplayMember = "MaVatTu";
            luMaVatTu.Properties.ValueMember = "IDVatTu";
            luMaVatTu.Properties.NullText = "--- Chọn vật tư ---";
            luMaVatTu.Properties.TextEditStyle = TextEditStyles.DisableTextEditor;
            luMaVatTu.Properties.ShowHeader = false;
            luMaVatTu.Properties.Columns["IDVatTu"].Visible = false;
            luMaVatTu.Properties.Columns["DonVi"].Visible = false;
            luMaVatTu.Properties.Columns["KhoVai"].Visible = false;
            luMaVatTu.Properties.Columns["DonGia"].Visible = false;

            gcSoLuong.DisplayFormat.FormatType = FormatType.Numeric;
            gcSoLuong.DisplayFormat.FormatString = "{0:0,0.00}";
            gcDonGia.DisplayFormat.FormatType = FormatType.Numeric;
            gcDonGia.DisplayFormat.FormatString = "{0:0,0.00}";
            gcThanhTien.DisplayFormat.FormatType = FormatType.Numeric;
            gcThanhTien.DisplayFormat.FormatString = "{0:0,0.00}";

            gcXoa.Width = 10;
            gcID.Visible = false;

            gcThanhTien.Summary.Add(DevExpress.Data.SummaryItemType.Sum, "ThanhTien", "{0:0,0}");
            gcSoLuong.Summary.Add(DevExpress.Data.SummaryItemType.Sum, "SoLuong", "{0:0,0}");
            gcDonGia.Summary.Add(DevExpress.Data.SummaryItemType.Sum, "DonGia", "{0:0,0}");

        }

        private void LoadFormUpdate()
        {
            DataTable dtXK = DataAll.SelectAll("XuatKho_VatTu", "*", "Where ID = " + ID_XuatKho);
            dtNgayXuat.Value = Convert.ToDateTime(dtXK.Rows[0]["NgayXuat"]);
            txtTongTien.Text = dtXK.Rows[0]["TongTien"].ToString();
            luPhongBan.EditValue = dtXK.Rows[0]["MaPhong"];
            luNguoiNhan.EditValue = dtXK.Rows[0]["NguoiNhan"];
            txtGhiChu.Text = dtXK.Rows[0]["GhiChu"].ToString();
            dtNgayHachToan.Value = Convert.ToDateTime(dtXK.Rows[0]["NgayHoachToan"]);
            dtNgayChungTu.Value = Convert.ToDateTime(dtXK.Rows[0]["NgayChungTu"]);
            txtChungtu.Text = dtXK.Rows[0]["SoChungTu"].ToString();
            txtNguoiXuat.Text = dtXK.Rows[0]["NguoiLapPhieu"].ToString();

            DataTable dtXKCT = DataAll.SelectAll("XuatKho_VatTu_ChiTiet inner join Kho_VatTu on XuatKho_VatTu_ChiTiet.IDVatTu=Kho_VatTu.IDVatTu",
                "XuatKho_VatTu_ChiTiet.SoLuong,XuatKho_VatTu_ChiTiet.DonGia,XuatKho_VatTu_ChiTiet.ThanhTien,XuatKho_VatTu_ChiTiet.GhiChu,Kho_VatTu.IDVatTu as 'Mã vật tư',Kho_VatTu.TenVatTu,Kho_VatTu.DonVi,Kho_VatTu.KhoVai", "Where ID_XuatKho = " + ID_XuatKho);
            //dtXKCT.Rows.Add();
            gridChiTiet.DataSource = null;
            gridChiTiet.DataSource = dtXKCT;
            //gvChiTiet.FocusedRowHandle = dtXKCT.Rows.Count;
            luPhongBan.Enabled = false;
            gvChiTiet.OptionsBehavior.Editable = false;
            gcXoa.Visible = false;
            gcMaVatTu.OptionsColumn.AllowFocus = false;
            gcSoLuong.OptionsColumn.AllowFocus = false;
            gcGhiChu.OptionsColumn.AllowFocus = false;

            if (dtXK.Rows[0]["TrangThai"].ToString() == Convert.ToInt32(TrangThaiKho.XuatKho_ChoDuyet).ToString() || dtXK.Rows[0]["TrangThai"].ToString() == Convert.ToInt32(TrangThaiKho.XuatKho_DaDuyet).ToString())
            {
                dtNgayXuat.Enabled = dtNgayChungTu.Enabled = dtNgayHachToan.Enabled = luNguoiNhan.Enabled = luPhongBan.Enabled = txtGhiChu.Enabled = bntLuLai.Visible = false;
            }
        }

        private void LoadFormInsert()
        {
            var dataColumns = new DataTable();
            dataColumns.Columns.Add("ID");
            dataColumns.Columns.Add("Mã vật tư");
            dataColumns.Columns.Add("TenVatTu");
            dataColumns.Columns.Add("DonVi");
            dataColumns.Columns.Add("SoLuong", typeof(double));
            dataColumns.Columns.Add("DonGia", typeof(double));
            dataColumns.Columns.Add("ThanhTien", typeof(double));
            dataColumns.Columns.Add("KhoVai");
            dataColumns.Columns.Add("GhiChu");

            pbAnh.Image = null;
            for (int i = 0; i < 1; i++)
            {
                dataColumns.Rows.Add("");
            }
            gridChiTiet.DataSource = null;
            gridChiTiet.DataSource = dataColumns;
            txtChungtu.Text = "XK" + DateTime.Now.Day + DateTime.Now.Month + DateTime.Now.Year
               + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second;
            txtNguoiXuat.Text = Main.UserID;
        }

        private void bntLuLai_Click(object sender, EventArgs e)
        {
            if (!ValidateForm())
                return;
            if (ID_XuatKho != "0")
            {
                if (gvChiTiet.RowCount > 1)
                {
                    string message = string.Empty;
                    message = DataAll.Update("XuatKho_VatTu", "NgayXuat =N'" + dtNgayXuat.Value.ToString("MM/dd/yyyy") + "',NguoiLapPhieu=N'" + Main.UserID + "',NguoiNhan=N'" + luNguoiNhan.EditValue
                        + "',NgayChungTu=N'" + dtNgayChungTu.Value + "',NgayHoachToan=N'" + dtNgayHachToan.Value + "',GhiChu=N'"
                        + txtGhiChu.Text + "',MaPhong =" + luPhongBan.EditValue + "',TongTien =" + SplipSo(txtTongTien.Text) + " WHERE ID =" + ID_XuatKho);
                    //if (message == "success")
                    //{
                    //    var dataview = (DataView)gvChiTiet.DataSource;
                    //    for (int i = 0; i < gvChiTiet.RowCount - 1; i++)
                    //    {
                    //        var id_vattu = gcMaVatTu.View.GetRowCellValue(i, "Mã vật tư").ToString();
                    //        if (string.IsNullOrEmpty(gvChiTiet.GetRowCellValue(i, "ID").ToString()))
                    //        {
                    //            message = DataAll.InsertAll("XuatKho_VatTu_ChiTiet", ID_XuatKho
                    //             + "," + id_vattu
                    //             + "," + gcSoLuong.View.GetRowCellValue(i, "SoLuong")
                    //             + "," + dtNgayXuat.Value.ToString("MM/dd/yyyy")
                    //             + "," + gcGhiChu.View.GetRowCellValue(i, "GhiChu"));

                    //            var dtVatTu = DataAll.SelectAll("Kho_VatTu", "*", " WHERE IDVatTu=" + id_vattu);
                    //            var dtKhoAo = DataAll.SelectAll("Kho_VatTuDuKien", "*", " WHERE MaVatTu=N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");
                    //            double soluong = Convert.ToDouble(dtVatTu.Rows[0]["SoLuong"]) - Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                    //            double soluongKhoAo = Convert.ToDouble(dtKhoAo.Rows[0]["SoLuong"]) - Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                    //            DataAll.Update("Kho_VatTu", "SoLuong = " + soluong + " WHERE IDVatTu=" + id_vattu);
                    //            DataAll.Update("Kho_VatTuDuKien", "SoLuong = " + soluongKhoAo + " WHERE MaVatTu=N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");
                    //            double soLuongKhoNhan =
                    //              Convert.ToDouble(DataAll.SelectAll("Kho_KhoHang_VatTu", "*", "WHERE IDVatTu=" + id_vattu + "AND IDKhoHang = " + luPhongBan.EditValue).Rows[0]["SoLuong"].ToString())
                    //              + Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                    //            DataAll.Update("Kho_KhoHang_VatTu", "SoLuong = " + soLuongKhoNhan + " WHERE IDVatTu=" + id_vattu + "AND IDKhoHang = " + luPhongBan.EditValue);
                    //        }
                    //        else
                    //        {
                    //            DataTable dtVatTu = DataAll.SelectAll("Kho_VatTu", "*", "WHERE IDVatTu = " + id_vattu);
                    //            DataTable dtVatTuDuKien = DataAll.SelectAll("Kho_VatTuDuKien", "*", "WHERE MaVatTu = N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");
                    //            DataTable dtXKCT = DataAll.SelectAll("XuatKho_VatTu_ChiTiet", "*", "WHERE ID = " + dataview[i]["ID"]);
                    //            double soLuong = Convert.ToDouble(dtVatTu.Rows[0]["SoLuong"]) + Convert.ToDouble(dtXKCT.Rows[0]["SoLuong"]) - Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                    //            double soLuongDuKien = Convert.ToDouble(dtVatTuDuKien.Rows[0]["SoLuong"]) + Convert.ToDouble(dtXKCT.Rows[0]["SoLuong"]) - Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                    //            string Kho_VatTu = DataAll.Update("Kho_VatTu", "SoLuong = " + soLuong + " Where IDVatTu = " + id_vattu);
                    //            string Kho_VatTuDuKien = DataAll.Update("Kho_VatTuDuKien", "SoLuong = " + soLuongDuKien + " Where MaVatTu = N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");
                    //            double soLuongKhoNhan =
                    //              Convert.ToDouble(DataAll.SelectAll("Kho_KhoHang_VatTu", "*", "WHERE IDVatTu=" + id_vattu + "AND IDKhoHang = " + luPhongBan.EditValue).Rows[0]["SoLuong"].ToString())
                    //              - Convert.ToDouble(dtXKCT.Rows[0]["SoLuong"])
                    //              + Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                    //            DataAll.Update("Kho_KhoHang_VatTu", "SoLuong = " + soLuongKhoNhan + " WHERE IDVatTu=" + id_vattu + "AND IDKhoHang = " + luPhongBan.EditValue);

                    //            message = DataAll.Update("XuatKho_VatTu_ChiTiet", "IDVatTu=" + id_vattu
                    //                + ",SoLuong=" + gcSoLuong.View.GetRowCellValue(i, "SoLuong")
                    //                + ",NgayXuat='" + dtNgayXuat.Value.ToString("MM/dd/yyyy")
                    //                + "',GhiChu=N'" + gcGhiChu.View.GetRowCellValue(i, "Ghi chú") + "' WHERE ID =" + dataview[i]["ID"]);

                    //        }
                    //        if (message != "success")
                    //        {
                    //            break;
                    //        }
                    //    }
                    //}
                    MessageBox.Show(message.Equals("success") ? "Sửa xuất kho thành công" : message, "Message",
                                    MessageBoxButtons.OK,
                                    message.Equals("success") ? MessageBoxIcon.Information : MessageBoxIcon.Error);
                    Close();
                }
            }
            else
            {
                if (gvChiTiet.RowCount > 1)
                {
                    string message = string.Empty;
                    var data = DataAll.SelectCustomer("INSERT INTO [XuatKho_VatTu] VALUES('" + dtNgayXuat.Value.ToString("MM/dd/yyyy") + "',N'"
                        + Main.UserID + "','" + dtNgayChungTu.Value.ToString("MM/dd/yyyy") + "','"
                        + dtNgayHachToan.Value.ToString("MM/dd/yyyy") + "','" + txtChungtu.Text + "','"
                        + txtGhiChu.Text + "'," + luPhongBan.EditValue + ",N'" + luNguoiNhan.EditValue + "'," + Convert.ToInt32(TrangThaiKho.XuatKho_TaoMoi) + ",''," + SplipSo(txtTongTien.Text) + ") SELECT MAX(ID) FROM [XuatKho_VatTu]");
                    for (int i = 0; i < gvChiTiet.RowCount - 1; i++)
                    {
                        var id_vattu = gcMaVatTu.View.GetRowCellValue(i, "Mã vật tư").ToString();
                        //var ma_vattu = (DataRowView)luMaVatTu.GetDataSourceRowByKeyValue(gcMaVatTu.View.GetRowCellValue(i, "Mã vật tư").ToString());
                        message = DataAll.InsertAll("XuatKho_VatTu_ChiTiet", data.Rows[0][0]
                            + "," + id_vattu
                            + "," + gcSoLuong.View.GetRowCellValue(i, "SoLuong")
                            + "," + gcDonGia.View.GetRowCellValue(i, "DonGia")
                            + "," + gcThanhTien.View.GetRowCellValue(i, "ThanhTien")
                            + "," + dtNgayXuat.Value.ToString("MM/dd/yyyy")
                            + "," + gcGhiChu.View.GetRowCellValue(i, "GhiChu"));
                        if (message != "success")
                        {
                            DataAll.Delete("XuatKho_VatTu_ChiTiet", "WHERE ID_XuatKho=" + data.Rows[0][0]);
                            break;
                        }
                        //var dtVatTu = DataAll.SelectAll("Kho_VatTu", "*", " WHERE IDVatTu=" + id_vattu);
                        //var dtKhoAo = DataAll.SelectAll("Kho_VatTuDuKien", "*", " WHERE MaVatTu=N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");
                        //double soluong = Convert.ToDouble(dtVatTu.Rows[0]["SoLuong"]) - Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                        //double soluongKhoAo = Convert.ToDouble(dtKhoAo.Rows[0]["SoLuong"]) - Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                        //DataAll.Update("Kho_VatTu", "SoLuong = " + soluong + " WHERE IDVatTu=" + id_vattu);
                        //DataAll.Update("Kho_VatTuDuKien", "SoLuong = " + soluongKhoAo + " WHERE MaVatTu=N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");

                        //// cập nhật kho nhận
                        //double soLuongKhoNhan =
                        //    Convert.ToDouble(DataAll.SelectAll("Kho_KhoHang_VatTu", "*", "WHERE IDVatTu=" + id_vattu + "AND IDKhoHang = " + luPhongBan.EditValue).Rows[0]["SoLuong"].ToString())
                        //    + Convert.ToDouble(gcSoLuong.View.GetRowCellValue(i, "SoLuong"));
                        //DataAll.Update("Kho_KhoHang_VatTu", "SoLuong = " + soLuongKhoNhan + " WHERE IDVatTu=" + id_vattu + "AND IDKhoHang = " + luPhongBan.EditValue);

                    }
                    MessageBox.Show(message.Equals("success") ? "Lập lệnh xuất kho thành công!" : message, "Message",
                                    MessageBoxButtons.OK,
                                    message.Equals("success") ? MessageBoxIcon.Information : MessageBoxIcon.Error);
                    Close();

                }

            }
        }

        private void btnThoat_Click(object sender, EventArgs e)
        {
            Close();
        }

        public void LoadImage()
        {
            var data = DataAll.SelectAll("DkChung_HinhAnh", "*", " WHERE MaAnh='" + luMaDangAnh.EditValue + "'");
            if (data.Rows.Count > 0)
            {
                var content = (byte[])data.Rows[0]["Anh"];
                if (content != null)
                {
                    Image newImage;
                    using (var ms = new MemoryStream(content, 0, content.Length))
                    {
                        ms.Write(content, 0, content.Length);
                        newImage = Image.FromStream(ms, true);
                    }
                    pbAnh.Image = newImage;
                }
                else
                {
                    pbAnh.Image = null;
                }
            }
            else
            {
                MessageBox.Show("Không tìm thấy mã ảnh", "Message", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private void luMaDangAnh_EditValueChanged(object sender, EventArgs e)
        {
            var lucheck = (LookUpEdit)sender;
            if (lucheck.ItemIndex >= 0)
            {
                LoadImage();
            }
        }

        private void pbAnh_Click(object sender, EventArgs e)
        {
            if (luMaDangAnh.EditValue == null)
                return;
            XemAnh.MaID = luMaDangAnh.EditValue.ToString();
            var anh = new XemAnh();
            anh.ShowDialog();
            XemAnh.MaID = "0";
        }

        private void btnDelete_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
        {
            if (gvChiTiet.FocusedRowHandle == gvChiTiet.RowCount - 1)
            {
                return;
            }

            DialogResult dialogResult = MessageBox.Show("Bạn có chắc chắn muốn xóa.", "Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (dialogResult == DialogResult.Yes)
            {
                var dataview = (DataView)gvChiTiet.DataSource;
                //if (ID_XuatKho != "0")
                //{
                //    if (!string.IsNullOrEmpty(gvChiTiet.GetRowCellValue(gvChiTiet.FocusedRowHandle, "ID").ToString()))
                //    {
                //        DataTable dtVatTu = DataAll.SelectAll("Kho_VatTu", "*", "WHERE IDVatTu = " + gcMaVatTu.View.GetRowCellValue(gvChiTiet.FocusedRowHandle, "Mã vật tư"));
                //        DataTable dtVatTuDuKien = DataAll.SelectAll("Kho_VatTuDuKien", "*", "WHERE MaVatTu = N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");
                //        DataTable dtNkct = DataAll.SelectAll("XuatKho_VatTu_ChiTiet", "*", "WHERE ID = " + dataview[gvChiTiet.FocusedRowHandle]["ID"]);
                //        double soLuong = Convert.ToDouble(dtVatTu.Rows[0]["SoLuong"]) + Convert.ToDouble(dtNkct.Rows[0]["SoLuong"]);
                //        double soLuongDuKien = Convert.ToDouble(dtVatTuDuKien.Rows[0]["SoLuong"]) + Convert.ToDouble(dtNkct.Rows[0]["SoLuong"]);
                //        string khoVatTu = DataAll.Update("Kho_VatTu", "SoLuong = " + soLuong + " Where IDVatTu = " + gcMaVatTu.View.GetRowCellValue(gvChiTiet.FocusedRowHandle, "Mã vật tư"));
                //        string khoVatTuDuKien = DataAll.Update("Kho_VatTuDuKien", "SoLuong = " + soLuongDuKien + " Where MaVatTu = N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");

                //        double soLuongKhoNhan =
                //                   Convert.ToDouble(DataAll.SelectAll("Kho_KhoHang_VatTu", "*", "WHERE IDVatTu=" + gcMaVatTu.View.GetRowCellValue(gvChiTiet.FocusedRowHandle, "Mã vật tư") + "AND IDKhoHang = " + luPhongBan.EditValue).Rows[0]["SoLuong"].ToString())
                //                   - Convert.ToDouble(dtNkct.Rows[0]["SoLuong"]);
                //        string khoNoiBo = DataAll.Update("Kho_KhoHang_VatTu", "SoLuong = " + soLuongKhoNhan + " WHERE IDVatTu=" + gcMaVatTu.View.GetRowCellValue(gvChiTiet.FocusedRowHandle, "Mã vật tư") + "AND IDKhoHang = " + luPhongBan.EditValue);

                //        if (khoVatTu.Equals("success") && khoVatTuDuKien.Equals("success") && khoNoiBo.Equals("success"))
                //        {
                //            string message = DataAll.Delete("XuatKho_VatTu_ChiTiet", " ID = " + dataview[gvChiTiet.FocusedRowHandle]["ID"]);
                //            MessageBox.Show(message.Equals("success") ? "Xóa thành công" : message, "Message",
                //                                MessageBoxButtons.OK,
                //                                message.Equals("success") ? MessageBoxIcon.Information : MessageBoxIcon.Error);
                //        }
                //    }
                //}
                (gridChiTiet.MainView as GridView).DeleteSelectedRows();
            }
        }

        private void gvChiTiet_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            if (e.Column.Caption == "Mã vật tư")
            {
                if (e.RowHandle == gvChiTiet.RowCount - 1)
                {
                    (gridChiTiet.MainView as GridView).AddNewRow();
                }
                gvChiTiet.SetRowCellValue(e.RowHandle, gvChiTiet.Columns["SoLuong"], 0);
                var vatTu = (DataRowView)luMaVatTu.Properties.GetDataSourceRowByKeyValue(e.Value);
                gvChiTiet.SetRowCellValue(e.RowHandle, gvChiTiet.Columns["TenVatTu"], vatTu.Row.ItemArray[2].ToString());
                gvChiTiet.SetRowCellValue(e.RowHandle, gvChiTiet.Columns["DonVi"], vatTu.Row.ItemArray[3].ToString());
                gvChiTiet.SetRowCellValue(e.RowHandle, gvChiTiet.Columns["KhoVai"], vatTu.Row.ItemArray[4].ToString());
                gvChiTiet.SetRowCellValue(e.RowHandle, gvChiTiet.Columns["DonGia"], vatTu.Row.ItemArray[5].ToString());

                // check chọn trùng mã vật tư
                var data = (DataView)gvChiTiet.DataSource;
                if (data.Count > 2)
                {
                    for (int i = 0; i < data.Count - 1; i++)
                    {
                        if (i != e.RowHandle)
                        {
                            string a = gvChiTiet.GetRowCellValue(e.RowHandle, "Mã vật tư").ToString();
                            string b = data[i]["Mã vật tư"].ToString();
                            if (a == b)
                            {
                                MessageBox.Show("Vật tư đã được chọn ở dòng thứ: " + (i + 1).ToString(), "Message",
                                                MessageBoxButtons.OK, MessageBoxIcon.Error);
                                //if (ID_XuatKho != "0")
                                //{
                                //    if (!string.IsNullOrEmpty(gvChiTiet.GetRowCellValue(gvChiTiet.FocusedRowHandle, "ID").ToString()))
                                //    {
                                //        DataTable dtVatTu = DataAll.SelectAll("Kho_VatTu", "*", "WHERE IDVatTu = " + curID_VatTu);
                                //        DataTable dtVatTuDuKien = DataAll.SelectAll("Kho_VatTuDuKien", "*", "WHERE MaVatTu = N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");
                                //        DataTable dtNKCT = DataAll.SelectAll("XuatKho_VatTu_ChiTiet", "*", "WHERE ID = " + curID_XKCT);
                                //        double soLuong = Convert.ToDouble(dtVatTu.Rows[0]["SoLuong"]) + Convert.ToDouble(dtNKCT.Rows[0]["SoLuong"]);
                                //        double soLuongDuKien = Convert.ToDouble(dtVatTuDuKien.Rows[0]["SoLuong"]) + Convert.ToDouble(dtNKCT.Rows[0]["SoLuong"]);
                                //        string Kho_VatTu = DataAll.Update("Kho_VatTu", "SoLuong = " + soLuong + " Where IDVatTu = " + curID_VatTu);
                                //        string Kho_VatTuDuKien = DataAll.Update("Kho_VatTuDuKien", "SoLuong = " + soLuongDuKien + " Where MaVatTu = N'" + dtVatTu.Rows[0]["MaVatTu"] + "'");
                                //        double soLuongKhoNhan =
                                //          Convert.ToDouble(DataAll.SelectAll("Kho_KhoHang_VatTu", "*", "WHERE IDVatTu=" + curID_VatTu + "AND IDKhoHang = " + luPhongBan.EditValue).Rows[0]["SoLuong"].ToString())
                                //          - Convert.ToDouble(dtNKCT.Rows[0]["SoLuong"]);
                                //        string khoNoiBo = DataAll.Update("Kho_KhoHang_VatTu", "SoLuong = " + soLuongKhoNhan + " WHERE IDVatTu=" + curID_VatTu + "AND IDKhoHang = " + luPhongBan.EditValue);
                                //        if (Kho_VatTu.Equals("success") && Kho_VatTuDuKien.Equals("success") && khoNoiBo.Equals("success"))
                                //        {
                                //            string message = DataAll.Delete("XuatKho_VatTu_ChiTiet", " ID = " + curID_XKCT);
                                //        }
                                //    }
                                //}
                                (gridChiTiet.MainView as GridView).DeleteRow(e.RowHandle);
                                break;
                            }
                        }
                    }
                }
            }
            if (e.Column.FieldName == "SoLuong" && !string.IsNullOrEmpty(gvChiTiet.GetRowCellValue(e.RowHandle, gvChiTiet.Columns["SoLuong"]).ToString())
            && !string.IsNullOrEmpty(gvChiTiet.GetRowCellValue(e.RowHandle, gvChiTiet.Columns["DonGia"]).ToString()))
            {
                gvChiTiet.SetRowCellValue(e.RowHandle, gvChiTiet.Columns["ThanhTien"], Convert.ToDouble(gvChiTiet.GetRowCellValue(e.RowHandle, "SoLuong")) *
                    +Convert.ToDouble(gvChiTiet.GetRowCellValue(e.RowHandle, "DonGia")));
            }
            if (e.Column.FieldName == "DonGia" && !string.IsNullOrEmpty(gvChiTiet.GetRowCellValue(e.RowHandle, gvChiTiet.Columns["SoLuong"]).ToString())
            && !string.IsNullOrEmpty(gvChiTiet.GetRowCellValue(e.RowHandle, gvChiTiet.Columns["DonGia"]).ToString()))
            {
                gvChiTiet.SetRowCellValue(e.RowHandle, gvChiTiet.Columns["ThanhTien"], Convert.ToDouble(gvChiTiet.GetRowCellValue(e.RowHandle, "SoLuong")) *
                    +Convert.ToDouble(gvChiTiet.GetRowCellValue(e.RowHandle, "DonGia")));

            }
        }

        private bool ValidateForm()
        {
            bool chk = true;
            if (luNguoiNhan.EditValue == null)
            {
                MessageBox.Show("Vui lòng chọn người nhận!", "Lỗi nhập dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                chk = false;
                return chk;
            }
            if (luPhongBan.EditValue == null)
            {
                MessageBox.Show("Vui lòng chọn kho nhận!", "Lỗi nhập dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                chk = false;
                return chk;
            }
            if (gvChiTiet.RowCount == 1)
            {
                MessageBox.Show("Vui lòng chọn vật tư!", "Lỗi nhập dữ liệu", MessageBoxButtons.OK, MessageBoxIcon.Error);
                chk = false;
                return chk;
            }
            return chk;
        }

        public double SplipSo(string so)
        {
            string[] temp = so.Split(',');
            string tempSo = temp.Aggregate<string, string>(null, (current, t) => current + t);
            if (string.IsNullOrEmpty(tempSo))
            {
                return 0;
            }
            return Convert.ToDouble(tempSo);
        }

        private void bntExport_Click(object sender, EventArgs e)
        {
            var title = new DataTable();
            var content = new DataTable();
            var bottom = new DataTable();
            var saveFile = new SaveFileDialog();
            saveFile.Filter = "Excel Workbook (*.xlsx)|*.xlsx|Excel 97-2003 Workbook (*.xls)|*.xls|All files (*.*)|*.*";
            if (saveFile.ShowDialog() == DialogResult.OK)
            {
                for (int i = 0; i < 8; i++)
                {
                    title.Columns.Add("" + i);
                    content.Columns.Add("" + i);
                    bottom.Columns.Add("" + i);
                }
                title.Rows.Add("CHIC-LAND", "", "", "PHIẾU NHẬP KHO (MUA VẬT TƯ HÀNG HÓA)");
                title.Rows.Add("Kho: VẬT TƯ - HÀNG HÓA", "", "", "", "Ngày thang nam");
                title.Rows.Add("Từ NSX: " + txtPhongXuat.Text, "", "");
                title.Rows.Add("Đến Kho: " + luPhongBan.Text, "", "");
                title.Rows.Add("Ghi chú", "", "");
                title.Rows.Add("");
                title.Rows.Add("STT", "Mã vật tư", "Tên vật tư", "Đơn vị", "Số lượng", "Đơng giá", "Tổng tiền", "Ghi chú");
                var dtv = (DataView)gvChiTiet.DataSource;
                for (int i = 0; i < dtv.Count; i++)
                {
                    content.Rows.Add(i, gvChiTiet.GetRowCellDisplayText(i, "Mã vật tư"), dtv[i]["TenVatTu"], dtv[i]["DonVi"], dtv[i]["SoLuong"], dtv[i]["DonGia"]
                        , dtv[i]["ThanhTien"], dtv[i]["GhiChu"]);
                }
                content.Rows.Add("", "", "", "", "", "", txtTongTien.Text);

                bottom.Rows.Add("* Tổng số tiền (viết bằng chữ): " + DemSo.DemTongTien(SplipSo(txtTongTien.Text).ToString()) + " đồng.");
                //bottom.Rows.Add("* Tổng số tiền (viết bằng chữ): ");
                bottom.Rows.Add("");
                bottom.Rows.Add("", "Lập phiếu", "Người giao hàng", "Thủ kho", "", "Kế toán");
                bottom.Rows.Add("", "");

                try
                {
                    ExportExcel.PhieuNhapKho("Phiếu nhập kho", saveFile.FileName, title, content, bottom);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "Lỗi Export", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }

        private void gvChiTiet_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            txtTongTien.Text = gcThanhTien.SummaryText;
        }
    }
}
